﻿// 3407. 密码翻译.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <map>
#include <cstring>

using namespace std;
/*
https://www.acwing.com/problem/content/3410/

在情报传递过程中，为了防止情报被截获，往往需要对情报用一定的方式加密，简单的加密算法虽然不足以完全避免情报被破译，但仍然能防止情报被轻易的识别。

我们给出一种最简的的加密方法，对给定的一个字符串，把其中从 a−y,A−Y的字母用其后继字母替代，把 z 和 Z
 用 a和 A替代，则可得到一个简单的加密字符串。

输入格式
输入包含多组测试数据。

每组数据占一行，包含一个字符串。

输出格式
每组数据输出一个占一行的加密字符串。

数据范围
输入最多包含 100 组数据。字符串长度不超过 80，且首尾不含空格。

输入样例：
Hello! How are you!
输出样例：
Ifmmp! Ipx bsf zpv!
*/

map<char, char> mma;
map<char, char> mmA;

void init() {
    for (char i = 'a'; i <= 'y'; i++) {
        mma[i] = i + 1;
    }
    mma['z'] = 'a';

    for (char i = 'A'; i <= 'Y'; i++) {
        mmA[i] = i + 1;
    }
    mmA['Z'] = 'A';
}

 
int main()
{
    init();
    char str[100];
    while (cin.getline(str,90) ){
        for (int i = 0; i < strlen(str); i++) {
            if (str[i] >= 'a' && str[i] <= 'z') {
                str[i] = mma[str[i]];
            }
            else if (str[i] >= 'A' && str[i] <= 'Z') {
                str[i] = mmA[str[i]];
            }
        }
        cout << str << endl;
    }
    

    return 0;
}

